package com.jt.controller;

import com.jt.pojo.ItemCat;
import com.jt.service.ItemCatService;
import com.jt.vo.SysResult;
import lombok.experimental.Accessors;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import java.util.List;

@RestController
@CrossOrigin //跨域
@RequestMapping("/itemCat")
public class ItemCatController {

    @Autowired
    private ItemCatService itemCatService;

    /**
     *  请求路径: /itemCat/findItemCatList/3
     *  请求类型: get
     *  返回类型: SysResult对象
     *  请求参数: type  =level 请求级别
     * */
    @GetMapping("/findItemCatList/{type}")
    public SysResult findItemCatList(@PathVariable Integer type){
        //要求实现数据的嵌套
        List<ItemCat> catList =itemCatService.findItemCatList(type);
        return SysResult.success(catList);

    }
    /**
     *  需求: 实现商品分类的状态更新
     *  请求路径: /itemCat/status/{id}/{status}
     *  请求类型: put
     *  返回值: SysResult对象
     * */
    @PutMapping("/status/{id}/{status}")
    public SysResult updateStatus(ItemCat itemCat){
        itemCatService.updateStatus(itemCat);
        return SysResult.success();
    }

    /**
     *  需求:商品分类新增
     *  请求路径: /itemCat/saveItemCat
     *  请求类型: post
     *  返回值: SysResult对象
     *  请求参数:整个form表单
     * */
    @PostMapping("/saveItemCat")
    public SysResult saveItemCat(@RequestBody ItemCat itemCat){

        itemCatService.saveItemCat(itemCat);
        return SysResult.success();
    }

    /**
     * 商品分类修改
     * 请求路径: /itemCat/updateItemCat
     * 请求类型: put
     * 请求参数: 表单数据 ItemCat对象
     * 返回值: SysResult对象
     * */

    /**
     * 商品分类删除
     * 请求路径: /itemCat/deleteItemCat
     * 请求类型: delete
     * 业务描述: 当删除节点为父级时,应该删除自身和所有的子节点
     * 请求参数:  id  level
     * 返回值结果 SysResult对象
     * */
    @DeleteMapping("/deleteItemCat")
    public SysResult deleteItemCat(Integer id,Integer level){

        itemCatService.deleteItemCat(id,level);
        return SysResult.success();

    }




}
